home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 24
/
Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso
/
Aminet
/
util
/
time
/
backclock.lha
/
BackClock
/
sources
/
tracewin.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-02-08
|
3KB
|
69 lines
/*****************************************************************************
*
* Nom: tracewin.c
* Desc: fonctions de traçage dans les fenetres
*
*
* version : $VER: tracewin.c 1.2 (08.02.98)
*****************************************************************************
*/
#include <proto/graphics.h>
#include <math.h>
#include "utils.h"
void initwin(idWin * prj) {
int i ;
ULONG mX, mY ;
mX = prj->backWin.width / 2 ;
mY = prj->backWin.height / 2 ;
SetAPen(prj->win->RPort, prj->backWin.back) ; // couleur fond
RectFill(prj->win->RPort, 0, 0, prj->backWin.width - 1,
prj->backWin.height - 1) ;// trace le fond
SetAPen(prj->win->RPort, 7) ; // couleur jaune
for(i = 0; i < 360; i=i+30) {
/* trace les repères des heures
*/
Move(prj->win->RPort, ULONG(cos(PI*i/180.0) * (mX-mX/10L)) + mX, ULONG(sin(PI*i/180.0) * (mX-mX/10L)) + mY) ;
Draw(prj->win->RPort, ULONG(cos(PI*i/180.0) * mX) + mX, ULONG(sin(PI*i/180.0) * mY) + mY) ;
}
}
void effacer(idWin * prj) {
ULONG mX, mY ;
mX = prj->backWin.width / 2 ;
mY = prj->backWin.height / 2 ;
SetAPen(prj->win->RPort, prj->backWin.back) ; // couleur fond
/* efface les heures
*/
Move(prj->win->RPort, mX,mY) ;
Draw(prj->win->RPort, mX+(ULONG)(cos(PI*((prj->oldH)*30.0-90.0 + (prj->oldM)/2.0)/180.0)*(mX-mX/2L)),mY+(ULONG)(sin(PI*((prj->oldH)*30.0-90.0 + (prj->oldM)/2.0)/180.0)*(mY-mY/2L))) ;
/* efface les minutes
*/
Move(prj->win->RPort, mX,mY) ;
Draw(prj->win->RPort, mX+(ULONG)(cos(PI*((prj->oldM)*6.0-90.0)/180.0)*(mX-mX/3L)), mY+(ULONG)(sin(PI*((prj->oldM)*6.0-90.0)/180.0)*(mY-mY/3L))) ;
/* efface les secondes
*/
Move(prj->win->RPort, mX,mY) ;
Draw(prj->win->RPort, mX+(ULONG)(cos(PI*((prj->oldS)*6.0-90.0)/180.0)*(mX-mX/4L)), mY+(ULONG)(sin(PI*((prj->oldS)*6.0-90.0)/180.0)*(mY-mY/4L))) ;
}
void retracer(idWin * prj) {
ULONG mX, mY ;
mX = prj->backWin.width / 2 ;
mY = prj->backWin.height / 2 ;
SetAPen(prj->win->RPort, 1) ; // noir
/* trace les heures
*/
Move(prj->win->RPort, mX,mY) ;
Draw(prj->win->RPort, mX+(ULONG)(cos(PI*( (prj->heu)*30.0-90.0 + (prj->min)/2.0) /180.0)*(mX-mX/2L)), mY+(ULONG)(sin(PI*((prj->heu)*30.0-90.0 + (prj->min)/2.0)/180.0)*(mY-mY/2L))) ;
/* trace les minutes
*/
Move(prj->win->RPort, mX,mY) ;
Draw(prj->win->RPort, mX+(ULONG)(cos(PI*((prj->min)*6.0-90.0)/180.0)*(mX-mX/3L)), mY+(ULONG)(sin(PI*((prj->min)*6.0-90.0)/180.0)*(mY-mY/3L))) ;
/* trace les secondes
*/
Move(prj->win->RPort, mX,mY) ;
Draw(prj->win->RPort, mX+(ULONG)(cos(PI*((prj->sec)*6.0-90.0)/180.0)*(mX-mX/4L)), mY+(ULONG)(sin(PI*((prj->sec)*6.0-90.0)/180.0)*(mY-mY/4L))) ;
}